using System;
using Microsoft.Xna.Framework;

namespace SpriteAnimations.Graphics
{
    abstract class SpriteAnimation
    {
        //
        // Fields
        //
        private Sprite animatedSprite;
        private bool isFinished = false;

        //
        // Properties
        //
        protected Sprite AnimatedSprite
        {
            get { return this.animatedSprite; }
        }

        public bool IsFinished
        {
            get { return this.isFinished; }
            set { this.isFinished = value; }
        }

        //
        // Virtual/Abstract Methods
        //
        public virtual void SetAnimatedSprite(Sprite sprite)
        {
            this.animatedSprite = sprite;
        }

        public abstract void Animate(GameTime gameTime, SpriteParameters animatedParameters);
    }
}
